﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HigLabo.Net;

namespace HigLabo.WindowsAzure.RestService.ServiceManagement
{
    public class GetHostedServicePropertiesCommand : ManagementServiceCommand<GetHostedServicePropertiesResult>
    {
        /// <summary>
        /// 対象サービス名
        /// </summary>
        public String ServiceName { get; private set; }
        /// <summary>
        /// 詳細プロパティを取得するか
        /// trueにすると、ホステッドサービスのより詳細な情報が取得できます。
        /// falseの場合、結果のインスタンスに、所属するデプロイ情報などの詳細な情報はセットされません。
        /// </summary>
        public Boolean IsEmbedDetail { get; set; }

        public GetHostedServicePropertiesCommand(String serviceName, Boolean isEmbedDetail)
        {
            if (String.IsNullOrEmpty(serviceName))
            {
                 throw new ArgumentException("serviceName must not be null", "serviceName");
            }
            ServiceName = serviceName;
            IsEmbedDetail = isEmbedDetail;
        }

        public override string GetRequestUri()
        {
            return String.Format("services/hostedservices/{0}?embed-detail={1}", this.ServiceName, IsEmbedDetail.ToString());
        }

        public override HttpMethodName MethodName
        {
            get { return HttpMethodName.Get; }
        }

        public override Dictionary<String,String> GetRequestHeaders()
        {
            return null;
        }

        public override System.IO.Stream GetRequestBodyStream()
        {
            return null;
        }
    }
}
